﻿
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Controls;
using System.Xml.Linq;
namespace AzukiMap.Renderer
{
    public enum PointDrawingType
    {
        Circle = 0,
        Rect,
        Bitmap,
    }

    public interface IVectorStyle
    {
        Brush Fill { get; set;}
        FillRule FillRule { get; set; }
        double Opacity { get; set; }
        Brush OpacityMask { get; set; }
        Brush Stroke { get; set; }
        double StrokeThickness { get; set; }
        DoubleCollection StrokeDashArray { get; set; }
        double StrokeDashOffset { get; set; }
        PenLineCap StrokeDashCap { get; set; }
        PenLineCap StrokeStartLineCap { get; set; }
        PenLineCap StrokeEndLineCap { get; set; }
        PenLineJoin StrokeLineJoin { get; set; }
        double StrokeMiterLimit { get; set; }

        double PointWidth { get; set; }
        double PointHeight { get; set; }
        PointDrawingType PointType { get; set; }
        Image PointImage { get; set; }

        double AdjustX { get; set; }
        double AdjustY { get; set; }

        XElement ToXml();
        XElement ToXml(string elementName);
        void Parse(XElement vectorStyleXml);
    }
}
